package org.persistente.manipula.conexao;

import java.sql.Connection;

import org.persistente.manipula.mapeamento.Manipulador;
import org.persistente.manipula.mapeamento.ManipuladorReturning;
import org.persistente.manipula.mapeamento.MapaObjetoRelacional;


/**
 * Driver para banco de dados Firebird.
 */
public class DriverPostgreSQL implements DriverBanco{
	
	private static final String nomeDriver = "org.postgresql.Driver";
	private String enderecoBanco;
	
	public DriverPostgreSQL(String enderecoBanco) throws ConexaoException{
		if ((enderecoBanco == null) || (enderecoBanco.length() == 0)){
			throw new ConexaoException("Endere�o de banco de dados inv�lido: " + enderecoBanco);
		}
		this.enderecoBanco = enderecoBanco;
	}
	
	@Override
	public String getStringConexao() {
		return "jdbc:postgresql://" + enderecoBanco;
	}

	@Override
	public String getNomeDriver() {
		return nomeDriver;
	}


	public <T> Manipulador<T> criaManipulador(MapaObjetoRelacional mapa, Connection conexao) {
		return new ManipuladorReturning<T>(mapa, conexao);
	}

}
